/**
 * MH-Z19B CO2传感器驱动头文件
 * 使用UART串口通信
 */

#ifndef __MHZ19B_H
#define __MHZ19B_H

#include "stm32f10x.h"

// MH-Z19B命令定义
#define MHZ19B_CMD_READ_CO2         0x86
#define MHZ19B_CMD_CALIBRATE_ZERO   0x87
#define MHZ19B_CMD_CALIBRATE_SPAN   0x88
#define MHZ19B_CMD_AUTO_CALIBRATION 0x79
#define MHZ19B_CMD_DETECTION_RANGE  0x99
#define MHZ19B_CMD_READ_TEMP        0x85

// 数据包结构
typedef struct {
    uint8_t header[2];  // 起始字节: 0xFF, 0x01
    uint8_t cmd;        // 命令
    uint8_t data[5];    // 数据
    uint8_t checksum;   // 校验和
} MHZ19B_Packet;

// 函数声明
void MHZ19B_Init(void);
uint16_t MHZ19B_Read_CO2(void);
uint8_t MHZ19B_Read_Temperature(void);
uint8_t MHZ19B_Set_AutoCalibration(uint8_t enable);
uint8_t MHZ19B_Calibrate_Zero(void);
uint8_t MHZ19B_Send_Command(uint8_t cmd, uint8_t *data, uint8_t len);
uint8_t MHZ19B_Receive_Response(MHZ19B_Packet *packet);

#endif
